toolbar: Better fix for animations
authorBenjamin Otte <otte@redhat.com>
Wed, 15 Jun 2011 20:50:59 +0000 (22:50 +0200)
committerBenjamin Otte <otte@redhat.com>
Wed, 15 Jun 2011 20:50:59 +0000 (22:50 +0200)
It turns out there's more places where the toolbar item size is used as
the margin box instead of the content box. Because of that, store the
margin box when allocating and use it whenever calls
toolbar_content_get_allocation() instead of calling
gtk_widget_get_allocation().

gtk/gtktoolbar.c

index da55c6a988b868d73ea84bf485637c75dbb49aaf..6abec0c925f11a55c49b7b4a54ff4f907579d8c0 100644 (file)
@@ -3253,6 +3253,7 @@ struct _ToolbarContent
   ItemState      state;
 
   GtkToolItem   *item;
+  GtkAllocation  allocation;
   GtkAllocation  start_allocation;
   GtkAllocation  goal_allocation;
   guint          is_placeholder : 1;
@@ -3466,7 +3467,7 @@ static void
 toolbar_content_get_allocation (ToolbarContent *content,
                                GtkAllocation  *allocation)
 {
-  gtk_widget_get_allocation (GTK_WIDGET (content->item), allocation);
+  *allocation = content->allocation;
 }
 
 static void
@@ -3513,20 +3514,9 @@ static void
 toolbar_content_size_allocate (ToolbarContent *content,
                               GtkAllocation  *allocation)
 {
-  GtkAllocation goal;
-
+  content->allocation = *allocation;
   gtk_widget_size_allocate (GTK_WIDGET (content->item),
                             allocation);
-
-  toolbar_content_get_goal_allocation (content, &goal);
-  if (goal.x == allocation->x && 
-      goal.y == allocation->y && 
-      goal.width == allocation->width && 
-      goal.height == allocation->height)
-    {
-      gtk_widget_get_allocation (GTK_WIDGET (content->item), &goal);
-      toolbar_content_set_goal_allocation (content, &goal);
-    }
 }
 
 static void